/**
 * @param {Array} saveElArr --.class #id --(用的是 querySelector)
 * @param {Array} typeArr
 */
function displayNoneBodyChildNodes(saveElArr, typeArr) {
	//获取元素的 所有 子元素
	let bodyChildeNodes = document.body.childNodes


	//默認 主要字段 --nav --footer (其他语义化 标签 body.childNodes)
	let defaultTypeArr = ["DIV", "P", "IMG", "BUTTON"]

	//typArr --如果有值 则是对 defaultTypeArr 的 补充
	if (typeArr == undefined) {
		typeArr = defaultTypeArr
	} else {
		for (var i = 0; i < defaultTypeArr.length; i++) {
			typeArr.indexOf(defaultTypeArr[i]) > -1 ? undefined : (typeArr.push(defaultTypeArr[i]))
		}
	}


	// console.log("typArr : " + typeArr);

	//被隐藏的元素
	let disElement = []

	let saveElements = []
	//放置 需要保留的元素
	for (let j = 0; j < saveElArr.length; j++) {
		let inv = document.querySelector(saveElArr[j])
		if (inv != undefined) {
			saveElements.push(inv)
		}
	}
	// console.log(saveElements);

	for (let i = 0; i < bodyChildeNodes.length; i++) {
		let nodeEl = bodyChildeNodes[i]
		// console.log("nodeName : " + nodeEl.nodeName);

		let indexN = typeArr.indexOf(nodeEl.nodeName)
		// console.log("in typArr index : " + indexN);

		//check 为常规元素 或者 选中的 元素
		if (indexN > -1) {

			// console.log(saveElements.indexOf(nodeEl) == -1);
			//不在 保留元素内
			if (saveElements.indexOf(nodeEl) == -1) {
				let comNodeEl = window.getComputedStyle(nodeEl)
				console.log(comNodeEl);

				//隐藏元素 内聯樣式
				nodeEl.style.display = "none"

				//添加 被隐藏的元素
				disElement.push(nodeEl)
			}
		}
	}



	function rebackElement(displayElArr) {
		if (displayElArr == undefined) {
			// displayElArr = "any"
			for (let i = 0; i < disElement.length; i++) {
				//根据 id 或 className(完整) 添加 display 的原先 样式
				// 如果 上面的返回值 为 undefined 则 取 nodeName 默认样式 的 值
				disElement[i].style.display = ""
			}

		} else {
			//复原部分元素
			for (let j = 0; j < displayElArr.length; j++) {
				let getElIndex = disElementHave(displayElArr[j])
				if (getElIndex > -1) {
					disElement[getElIndex].style.display = ""
				}
			}
		}


		//检测 disElement 中 是否包含了 某项元素
		function disElementHave(targetel) {
			for (let i = 0; i < disElement.length; i++) {
				disElement[i] == targetel
				return i
			}
			return -1
		}
	}
	return rebackElement
}


let reback = displayNoneBodyChildNodes([".ilabel-body"])
